<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>keyczar.keyczar.GenericKeyczar</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="keyczar-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            >Keyczar</th>
          </tr></table></th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">
      <span class="breadcrumbs">
        <a href="keyczar-module.html">Package&nbsp;keyczar</a> ::
        <a href="keyczar.keyczar-module.html">Module&nbsp;keyczar</a> ::
        Class&nbsp;GenericKeyczar
      </span>
    </td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
        <tr><td align="right"><span class="options"
            >[<a href="frames.html" target="_top">frames</a
            >]&nbsp;|&nbsp;<a href="keyczar.keyczar.GenericKeyczar-class.html"
            target="_top">no&nbsp;frames</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<!-- ==================== CLASS DESCRIPTION ==================== -->
<h1 class="epydoc">Class GenericKeyczar</h1><p class="nomargin-top"><span class="codelink"><a href="keyczar.keyczar-pysrc.html#GenericKeyczar">source&nbsp;code</a></span></p>
<pre class="base-tree">
object --+    
         |    
   <a href="keyczar.keyczar.Keyczar-class.html">Keyczar</a> --+
             |
            <strong class="uidshort">GenericKeyczar</strong>
</pre>

<hr />
<p>To be used by Keyczart.</p>

<!-- ==================== INSTANCE METHODS ==================== -->
<a name="section-InstanceMethods"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Instance Methods</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-InstanceMethods"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="keyczar.keyczar.GenericKeyczar-class.html#IsAcceptablePurpose" class="summary-sig-name">IsAcceptablePurpose</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">purpose</span>)</span><br />
      All purposes ok for Keyczart.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="keyczar.keyczar-pysrc.html#GenericKeyczar.IsAcceptablePurpose">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="keyczar.keyczar.GenericKeyczar-class.html#AddVersion" class="summary-sig-name">AddVersion</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">status</span>,
        <span class="summary-sig-arg">size</span>=<span class="summary-sig-default">None</span>)</span><br />
      Adds a new key version with given status to key set.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="keyczar.keyczar-pysrc.html#GenericKeyczar.AddVersion">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="keyczar.keyczar.GenericKeyczar-class.html#Promote" class="summary-sig-name">Promote</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">version_number</span>)</span><br />
      Promotes the status of key with given version number.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="keyczar.keyczar-pysrc.html#GenericKeyczar.Promote">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="keyczar.keyczar.GenericKeyczar-class.html#Demote" class="summary-sig-name">Demote</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">version_number</span>)</span><br />
      Demotes the status of key with given version number.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="keyczar.keyczar-pysrc.html#GenericKeyczar.Demote">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="keyczar.keyczar.GenericKeyczar-class.html#Revoke" class="summary-sig-name">Revoke</a>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">version_number</span>)</span><br />
      Revokes the key with given version number if scheduled to be revoked.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="keyczar.keyczar-pysrc.html#GenericKeyczar.Revoke">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="PublicKeyExport"></a><span class="summary-sig-name">PublicKeyExport</span>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">dest</span>)</span><br />
      Export the public keys corresponding to our key set to destination.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="keyczar.keyczar-pysrc.html#GenericKeyczar.PublicKeyExport">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type">&nbsp;</span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a name="Write"></a><span class="summary-sig-name">Write</span>(<span class="summary-sig-arg">self</span>,
        <span class="summary-sig-arg">loc</span>,
        <span class="summary-sig-arg">encrypter</span>=<span class="summary-sig-default">None</span>)</span></td>
          <td align="right" valign="top">
            <span class="codelink"><a href="keyczar.keyczar-pysrc.html#GenericKeyczar.Write">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="keyczar.keyczar.Keyczar-class.html">Keyczar</a></code></b>:
      <code><a href="keyczar.keyczar.Keyczar-class.html#GetKey">GetKey</a></code>,
      <code><a href="keyczar.keyczar.Keyczar-class.html#__init__">__init__</a></code>,
      <code><a href="keyczar.keyczar.Keyczar-class.html#__str__">__str__</a></code>
      </p>
    <div class="private">    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="keyczar.keyczar.Keyczar-class.html">Keyczar</a></code></b> (private):
      <code><a href="keyczar.keyczar.Keyczar-class.html#_AddKey" onclick="show_private();">_AddKey</a></code>,
      <code><a href="keyczar.keyczar.Keyczar-class.html#_ParseHeader" onclick="show_private();">_ParseHeader</a></code>
      </p></div>
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
      <code>__delattr__</code>,
      <code>__getattribute__</code>,
      <code>__hash__</code>,
      <code>__new__</code>,
      <code>__reduce__</code>,
      <code>__reduce_ex__</code>,
      <code>__repr__</code>,
      <code>__setattr__</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== STATIC METHODS ==================== -->
<a name="section-StaticMethods"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Static Methods</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-StaticMethods"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
<tr>
    <td width="15%" align="right" valign="top" class="summary">
      <span class="summary-type"><a href="keyczar.keyczar.Keyczar-class.html" class="link">Keyczar</a></span>
    </td><td class="summary">
      <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
          <td><span class="summary-sig"><a href="keyczar.keyczar.GenericKeyczar-class.html#Read" class="summary-sig-name">Read</a>(<span class="summary-sig-arg">location</span>)</span><br />
      Return a GenericKeyczar created from FileReader at given location.</td>
          <td align="right" valign="top">
            <span class="codelink"><a href="keyczar.keyczar-pysrc.html#GenericKeyczar.Read">source&nbsp;code</a></span>
            
          </td>
        </tr>
      </table>
      
    </td>
  </tr>
</table>
<!-- ==================== PROPERTIES ==================== -->
<a name="section-Properties"></a>
<table class="summary" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Properties</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-Properties"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
  <tr>
    <td colspan="2" class="summary">
    <p class="indent-wrapped-lines"><b>Inherited from <code><a href="keyczar.keyczar.Keyczar-class.html">Keyczar</a></code></b>:
      <code><a href="keyczar.keyczar.Keyczar-class.html#primary_key">primary_key</a></code>,
      <code><a href="keyczar.keyczar.Keyczar-class.html#versions">versions</a></code>
      </p>
    <p class="indent-wrapped-lines"><b>Inherited from <code>object</code></b>:
      <code>__class__</code>
      </p>
    </td>
  </tr>
</table>
<!-- ==================== METHOD DETAILS ==================== -->
<a name="section-MethodDetails"></a>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr bgcolor="#70b0f0" class="table-header">
  <td colspan="2" class="table-header">
    <table border="0" cellpadding="0" cellspacing="0" width="100%">
      <tr valign="top">
        <td align="left"><span class="table-header">Method Details</span></td>
        <td align="right" valign="top"
         ><span class="options">[<a href="#section-MethodDetails"
         class="privatelink" onclick="toggle_private();"
         >hide private</a>]</span></td>
      </tr>
    </table>
  </td>
</tr>
</table>
<a name="Read"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">Read</span>(<span class="sig-arg">location</span>)</span>
    <br /><em class="fname">Static Method</em>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="keyczar.keyczar-pysrc.html#GenericKeyczar.Read">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Return a GenericKeyczar created from FileReader at given location.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>location</code></strong> - pathname of the directory storing the key files</li>
    </ul></dd>
    <dt>Returns: <a href="keyczar.keyczar.Keyczar-class.html" class="link">Keyczar</a></dt>
        <dd>a Keyczar to manage the keys stored at the given location</dd>
    <dt>Overrides:
        <a href="keyczar.keyczar.Keyczar-class.html#Read">Keyczar.Read</a>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="IsAcceptablePurpose"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">IsAcceptablePurpose</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">purpose</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="keyczar.keyczar-pysrc.html#GenericKeyczar.IsAcceptablePurpose">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>All purposes ok for Keyczart.</p>
  <dl class="fields">
    <dt>Overrides:
        <a href="keyczar.keyczar.Keyczar-class.html#IsAcceptablePurpose">Keyczar.IsAcceptablePurpose</a>
    </dt>
  </dl>
</td></tr></table>
</div>
<a name="AddVersion"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">AddVersion</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">status</span>,
        <span class="sig-arg">size</span>=<span class="sig-default">None</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="keyczar.keyczar-pysrc.html#GenericKeyczar.AddVersion">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Adds a new key version with given status to key set.</p>
  <p>Generates a new key of same type (repeated until hash identifier is 
  unique) for this version. Uses supplied key size (if provided) in lieu of
  the default key size. If this is an unacceptable key size, uses the 
  default key size. Uses next available version number.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>status</code></strong> (<a href="keyczar.keyinfo.KeyStatus-class.html" 
          class="link">keyinfo.KeyStatus</a>) - the status of the new key to be added</li>
        <li><strong class="pname"><code>size</code></strong> (integer) - size of key in bits, uses default size if not provided.</li>
    </ul></dd>
    <dt>Raises:</dt>
    <dd><ul class="nomargin-top">
        <li><code><strong class='fraise'><a href="keyczar.errors.KeyczarError-class.html">KeyczarError</a></strong></code> - if key type unsupported</li>
    </ul></dd>
  </dl>
</td></tr></table>
</div>
<a name="Promote"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">Promote</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">version_number</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="keyczar.keyczar-pysrc.html#GenericKeyczar.Promote">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Promotes the status of key with given version number.</p>
  <p>Promoting ACTIVE key automatically demotes current PRIMARY key to 
  ACTIVE.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>version_number</code></strong> (integer) - the version number to promote</li>
    </ul></dd>
    <dt>Raises:</dt>
    <dd><ul class="nomargin-top">
        <li><code><strong class='fraise'><a href="keyczar.errors.KeyczarError-class.html">KeyczarError</a></strong></code> - if invalid version number or trying to promote a primary key</li>
    </ul></dd>
  </dl>
</td></tr></table>
</div>
<a name="Demote"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">Demote</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">version_number</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="keyczar.keyczar-pysrc.html#GenericKeyczar.Demote">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Demotes the status of key with given version number.</p>
  <p>Demoting PRIMARY key results in a key set with no primary version.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>version_number</code></strong> (integer) - the version number to demote</li>
    </ul></dd>
    <dt>Raises:</dt>
    <dd><ul class="nomargin-top">
        <li><code><strong class='fraise'><a href="keyczar.errors.KeyczarError-class.html">KeyczarError</a></strong></code> - if invalid version number or trying to demote an inactive key, use 
        <a href="keyczar.keyczar.GenericKeyczar-class.html#Revoke" 
        class="link">Revoke</a> instead.</li>
    </ul></dd>
  </dl>
</td></tr></table>
</div>
<a name="Revoke"></a>
<div>
<table class="details" border="1" cellpadding="3"
       cellspacing="0" width="100%" bgcolor="white">
<tr><td>
  <table width="100%" cellpadding="0" cellspacing="0" border="0">
  <tr valign="top"><td>
  <h3 class="epydoc"><span class="sig"><span class="sig-name">Revoke</span>(<span class="sig-arg">self</span>,
        <span class="sig-arg">version_number</span>)</span>
  </h3>
  </td><td align="right" valign="top"
    ><span class="codelink"><a href="keyczar.keyczar-pysrc.html#GenericKeyczar.Revoke">source&nbsp;code</a></span>&nbsp;
    </td>
  </tr></table>
  
  <p>Revokes the key with given version number if scheduled to be 
  revoked.</p>
  <dl class="fields">
    <dt>Parameters:</dt>
    <dd><ul class="nomargin-top">
        <li><strong class="pname"><code>version_number</code></strong> (integer) - integer version number to revoke</li>
    </ul></dd>
    <dt>Raises:</dt>
    <dd><ul class="nomargin-top">
        <li><code><strong class='fraise'><a href="keyczar.errors.KeyczarError-class.html">KeyczarError</a></strong></code> - if invalid version number or key is not inactive.</li>
    </ul></dd>
  </dl>
</td></tr></table>
</div>
<br />
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="keyczar-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="module-tree.html">Trees</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            >Keyczar</th>
          </tr></table></th>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
  <tr>
    <td align="left" class="footer">
    Generated by Epydoc 3.0.1 on Sun Aug 10 17:05:05 2008
    </td>
    <td align="right" class="footer">
      <a target="mainFrame" href="http://epydoc.sourceforge.net"
        >http://epydoc.sourceforge.net</a>
    </td>
  </tr>
</table>

<script type="text/javascript">
  <!--
  // Private objects are initially displayed (because if
  // javascript is turned off then we want them to be
  // visible); but by default, we want to hide them.  So hide
  // them unless we have a cookie that says to show them.
  checkCookie();
  // -->
</script>
</body>
</html>
